package com.ruoyi.match.match.domain.bo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 比赛信息业务对象 mm_match
 *
 * @author sjz
 * @date 2023-11-03
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class MatchBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 比赛唯一标识
     */
    @NotBlank(message = "比赛唯一标识不能为空", groups = { AddGroup.class, EditGroup.class })
    private String matchFlag;

    /**
     * 比赛日期
     */
    @NotNull(message = "比赛日期不能为空", groups = { AddGroup.class, EditGroup.class })
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date matchDate;

    /**
     * 主队名称
     */
    @NotBlank(message = "主队名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String mainTeamName;

    /**
     * 客队名称
     */
    @NotBlank(message = "客队名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gustTeamName;

    /**
     * 让球数
     */
    @NotBlank(message = "让球数不能为空", groups = { AddGroup.class, EditGroup.class })
    private String rq;

    /**
     * 主队胜利赔率
     */
    private BigDecimal minMainWinOdds;
    private BigDecimal maxMainWinOdds;

    /**
     * 平赔率
     */
    @NotNull(message = "平赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal levelOdds;

    /**
     * 客队胜利赔率
     */
    @NotNull(message = "客队胜利赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal minGustWinOdds;
    private BigDecimal maxGustWinOdds;

    /**
     * 让球主队胜利赔率
     */
    @NotNull(message = "让球主队胜利赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal rqMinMainWinOdds;
    private BigDecimal rqMaxMainWinOdds;

    /**
     * 让球平赔率
     */
    private BigDecimal rqLevelOdds;

    /**
     * 让球客队胜利赔率
     */
    private BigDecimal rqMinGustWinOdds;
    private BigDecimal rqMaxGustWinOdds;

    /**
     * 0:1赔率
     */
    @NotNull(message = "0:1赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs01;

    /**
     * 0:2赔率
     */
    @NotNull(message = "0:2赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs02;

    /**
     * 0:3赔率
     */
    @NotNull(message = "0:3赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs03;

    /**
     * 0:4赔率
     */
    @NotNull(message = "0:4赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs04;

    /**
     * 0:5赔率
     */
    @NotNull(message = "0:5赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs05;

    /**
     * 1:0赔率
     */
    @NotNull(message = "1:0赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs10;

    /**
     * 1:2赔率
     */
    @NotNull(message = "1:2赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs12;

    /**
     * 1:3赔率
     */
    @NotNull(message = "1:3赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs13;

    /**
     * 1:4赔率
     */
    @NotNull(message = "1:4赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs14;

    /**
     * 1:5赔率
     */
    @NotNull(message = "1:5赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs15;

    /**
     * 2:0赔率
     */
    @NotNull(message = "2:0赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs20;

    /**
     * 2:1赔率
     */
    @NotNull(message = "2:1赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs21;

    /**
     * 2:2赔率
     */
    @NotNull(message = "2:2赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs22;

    /**
     * 2:3赔率
     */
    @NotNull(message = "2:3赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs23;

    /**
     * 2:4赔率
     */
    @NotNull(message = "2:4赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs24;

    /**
     * 2:5赔率
     */
    @NotNull(message = "2:5赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs25;

    /**
     * 3:0赔率
     */
    @NotNull(message = "3:0赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs30;

    /**
     * 3:1赔率
     */
    @NotNull(message = "3:1赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs31;

    /**
     * 3:2赔率
     */
    @NotNull(message = "3:2赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs32;

    /**
     * 4:0赔率
     */
    @NotNull(message = "4:0赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs40;

    /**
     * 4:1赔率
     */
    @NotNull(message = "4:1赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs41;

    /**
     * 4:2赔率
     */
    @NotNull(message = "4:2赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs42;

    /**
     * 5:0赔率
     */
    @NotNull(message = "5:0赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs50;

    /**
     * 5:1赔率
     */
    @NotNull(message = "5:1赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs51;

    /**
     * 5:2赔率
     */
    @NotNull(message = "5:2赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cs52;

    /**
     * 0:0平赔率
     */
    @NotNull(message = "0:0平赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal level00;

    /**
     * 1:1赔率
     */
    @NotNull(message = "1:1赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal level11;

    /**
     * 2:2赔率
     */
    @NotNull(message = "2:2赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal level22;

    /**
     * 3:3赔率
     */
    @NotNull(message = "3:3赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal level33;

    /**
     * 平其他赔率
     */
    @NotNull(message = "平其他赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal levelOther;

    /**
     * 胜其他赔率
     */
    @NotNull(message = "胜其他赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal winOther;

    /**
     * 负其他赔率
     */
    @NotNull(message = "负其他赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal lostOther;

    /**
     * 总进球0赔率
     */
    @NotNull(message = "总进球0赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jq0;

    /**
     * 总进球1赔率
     */
    @NotNull(message = "总进球1赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jq1;

    /**
     * 总进球2赔率
     */
    @NotNull(message = "总进球2赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jq2;

    /**
     * 总进球3赔率
     */
    @NotNull(message = "总进球3赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jq3;

    /**
     * 总进球4赔率
     */
    @NotNull(message = "总进球4赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jq4;

    /**
     * 总进球5赔率
     */
    @NotNull(message = "总进球5赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jq5;

    /**
     * 总进球6赔率
     */
    @NotNull(message = "总进球6赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jq6;

    /**
     * 总进球大于6赔率
     */
    @NotNull(message = "总进球大于6赔率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jqGt6;

    /**
     * 赛果
     */
    @NotNull(message = "赛果不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer matchResult;

    /**
     * 赛果比分
     */
    @NotBlank(message = "赛果比分不能为空", groups = { AddGroup.class, EditGroup.class })
    private String matchScore;

    private Integer rqResult;

}
